3
תגובות
בדקתי קצת בקשר לזה וראיתי שזה בעזרת fwrite אבל לא מצאתי מקום שמסביר על זה מספיק, הצלחתי לכתוב קובץ מחדש אבל איך אני יכול לערוך רק חלק מסויים? יש מדריך מקיף שיוכל לעזור לי?

3 תשובות

avatar ענה intval ב 28 לדצמבר 2013 #

הי יותם,
הדרך הכי קלה היא לא לבצע עריכה באמצעות פונקציות לעבודה עם קבצים, אלא באמצעות פונצקיות לעבודה עם מחרוזות.
אתה יכול לקרוא את כל התוכן של קובץ, לעשות עליו מה שתרצה עם פונקציות לעבודה עם מחרוזות, למשל mb_str_replace, ואת התוצאה לרשום בחזרה לתוך הקובץ:

$content = file_get_contents('file.txt');
$newContent = mb_str_replace('John', 'Jack', $content);
file_put_contents('file.txt', $newContent);

avatar ענה yotamN ב 28 לדצמבר 2013 #

הבנתי, אבל נגיד ואני רוצה לערוך משתנה מסויים, יש לי את הקובץ הזה:

$duser = 'mayaoffi_blog';
    $dpass = '464546';
    $dserver = 'localhost';
    $dname = 'mayaoffi_blog';

    $date = date("j.n.y");

    session_start();
    $con = mysql_connect("$dserver","$duser","$dpass");
    mysql_select_db("$dname", $con);


אני רוצה שהם יוכלו לערוך את המשתנים של פרטי המוסד נתונים, אתה נתת לי משהו שאני מחפש מילה ומחליף אותה, אבל אני לא יודע מה המילה הקודמת שהיית שמה, אז האפשרות היחידה היא לרשום מחדש?

avatar ענה intval ב 28 לדצמבר 2013 #

א. לדעתי אתה עושה משהו שאתה לא אמור לעשות. הבן אדם שהוריד את הקוד שלך מסוגל לפתוח לבד את הקובץ בעורך קוד ולשנות את נתוני ההתחברות.

ב. באופן כללי, אם אתה לא יודע במדויק מחרוזת מסוימת אבל אתה יודע איך היא נראית ומה המבנה שלה - אתה יכול להשתמש בביטויים רגולריים. אבל במקרה הזה זה לא הפתרון המתאים.

ג. במקרה שלך, אתה יכול להוציא את הערכים לקובץ אחר עם פורמט (מבנה) פשוט יותר, למשל
data.txt

localhost
mayaoffi_blog
464546
mayaoffi_blog


בסקריפט העריכה שלך אתה תמיד יודע שהשורה הראשנה זה השרת, השורה השניה זה המשתמש, השורה השלישית זה סיסמה וכו'. באמצעות הפונקציה file תוכל לקרוא את הקובץ ולקבל ממנו מערך. מה שישאר לך זה לשנות את הערכים במערך ולרשום אותם בחזרה לקובץ שורה אחרי שורה.
בסקריפט שצריך להשתמש בנתוני ההתחברות - אותו דבר, אתה קורא את תוכן הקובץ עם הסיסמאות שורה אחר שורה ומתחבר עם הערכים בהתאם.

אמנם אני אחזור על זה שוב - לדעתי אתה עושה משהו מיותר לחלוטין. מי שהסתדר עם ליצור מסד נתונים ומשתמש בשבילו יסתדר גם עם לערוך קובץ בעצמו.